package mws;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import mws.utils.JsonUtils;

import java.util.Map;

/**
 * 客户端处理器，用于处理服务端发送的消息和各种通道事件
 */
public class ClientHandler extends ChannelInboundHandlerAdapter {

    //  发送的数据格式  mapperClient:type:{key value}
    //  type 0 异步 1 同步 2 默认
    //  data 是具体的消息
    private static final String MAPPER_CLIENT = "mapperClient:";
    public static final int ASYNC = 1;
    public static final int SYNC = 0;
    public static final int DEFAULT = 2;
    public static final String DEP = "-";

    public static String buildMsg(int type, Map data) {
        return MAPPER_CLIENT + type + DEP + JsonUtils.toJson(data);
    }
    /**
     * 当通道激活时调用（连接成功建立）
     */
    @Override
    public void channelActive(ChannelHandlerContext ctx) {
        System.out.println("连接已建立，可以开始发送消息...");
        // 可以在这里发送初始消息
        ctx.writeAndFlush("客户端已上线");
    }

    /**
     * 当从服务端接收到消息时调用
     */
    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) {
        String response = (String) msg;
        System.out.println("收到服务器响应: " + response);
    }

}